home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / m17n / MLYM-RACHANA.flt < prev    next >
Text File  |  2009-04-29  |  4KB  |  137 lines

  1. ;; MLYM-RACHANA.flt -- Font Layout Table for Malayalam Rachana font
  2. ;; Copyright (C) 2005, 2007  AIST (H15PRO112)
  3. ;; See the end for copying conditions.
  4.  
  5. (font layouter mlym-rachana nil
  6.       (font (nil rachana unicode-bmp)))
  7.  
  8. ;;; <li> MLYM-RACHANA.flt
  9. ;;;
  10. ;;; For the Rachana Malayalam fonts to draw the traditional Malayalam
  11. ;;; script.  This fonts handles virtually all ligatures with the AKHN
  12. ;;; feature without character reordering.
  13.  
  14. ;; The first stage is to extract a syllable and re-order characters.
  15. (category
  16.  ;; C: consonant
  17.  ;; H: HALANT
  18.  ;; m: MATRA (Mpre)
  19.  ;; p: MATRA (Mpost)
  20.  ;; t: MATRA (two-part: Mpre+Mpost)
  21.  ;; A: vowel modifier (post) (ANUSVARA and VISARGA)
  22.  ;; V: independent vowel
  23.  ;; E: else (all other independnt characters)
  24.  (0x0D00 0x0D7F    ?E)            ; else
  25.  (0x0D02 0x0D03    ?A)            ; ANUSVARA & VISARGA
  26.  (0x0D05 0x0D14    ?V)            ; independent vowel
  27.  (0x0D15 0x0D39 ?C)            ; consonant
  28.  (0x0D3E 0x0D43    ?p)            ; dependent vowel (Mpost)
  29.  (0x0D46 0x0D48    ?m)            ; dependent vowel (Mpre)
  30.  (0x0D4A 0x0D4C ?t)            ; dependent vowel (two-part)
  31.  (0x0D4D    ?H)            ; VIRAMA (HALANT)
  32.  (0x0D57    ?p)            ; dependent vowel (Mpost)
  33.  (0x0D60    ?V)            ; VOCALIC RR
  34.  (0x0D61    ?V)            ; VOCALIC LL
  35.  (0x0D7F    ?x)            ; Internal use
  36.  (0x200C    ?N)            ; ZERO WIDTH NON-JOINER
  37.  (0x200D    ?J)            ; ZERO WIDTH JOINER
  38.  )
  39.  
  40. ;; Step 0.  Syllable identification.
  41. (generator
  42.  (0
  43.   (cond
  44.    ;; Halant + ZWNJ -- forced explicit halant.
  45.    ("((CH)*C)HN"
  46.     < | (1 otf:mlym=akhn,psts,haln) 0x0D4D | >)
  47.  
  48.    ;; Halant + ZWJ -- forced cillaksaram.
  49.    ("(CH)*(CH)J"
  50.     < | (1 otf:mlym=akhn,psts,haln) (2 otf:mlym=haln) | >)
  51.  
  52.    ;; Pre-consonant vowel is temporarily moved to the leftmost
  53.    ;; position to permit consonant ligature.
  54.    ("((CH)*C)(m)(A?)"
  55.     < | (3 =) (1 otf:mlym=akhn,psts,haln) 0x0D7F (4 =) | >)
  56.  
  57.    ;; Two-part vowel sign.
  58.    ("((CH)*C)(t)(A?)"
  59.     < | (3 pre) (1 otf:mlym=akhn,psts,haln) 0x0D7F (3 post) (4 =) | >)
  60.  
  61.    ;; Post-consonant vowel sign and/or vowel modifier.
  62.    ("((CH)*C(pA?|A))"
  63.     < | (1 otf:mlym=akhn,psts,haln) | >)
  64.  
  65.    ;; No vowel sign.
  66.    ("((CH)*C(H?))"
  67.     < | (1 otf:mlym=akhn,psts,haln) | >)
  68.  
  69.    ;; A syllable starting with an independent vowel.
  70.    ("(VA?)"
  71.     < | (1 = *) | >)
  72.  
  73.    ;; Other dedependent character.
  74.    ("[Apmt]" [ = ])
  75.  
  76.    ;; Other independent character.
  77.    ("." =))
  78.   *)
  79.  
  80.  ;; Former part of two-part vowel sign.
  81.  (pre
  82.   (cond
  83.    ((0x0D4A) 0x0D46)
  84.    ((0x0D4B) 0x0D47)
  85.    ((0x0D4C) 0x0D46)))
  86.  
  87.  ;; Latter part of two-part vowel sign.
  88.  (post
  89.   (cond
  90.    ((0x0D4A) 0x0D3E)
  91.    ((0x0D4B) 0x0D3E)
  92.    ((0x0D4C) 0x0D57))))
  93.  
  94. ;; Step 1.  Move Mpre to the left of base consonant(-cluster).
  95. (generator
  96.  (0
  97.   (cond
  98.    (" (m)([^x]*)([^x])x([^ ]*) "
  99.     (2 = *) (1 =) (3 =) (4 = *))
  100.    ("."
  101.     =))
  102.   *))
  103.  
  104. ;; Step 2. Finalise.
  105. (generator
  106.  (0
  107.   (cond
  108.    (" ([^ ]*) " (1 otf:mlym=+))
  109.    ("." =))
  110.   *))
  111.  
  112. ;; Copyright (C) 2005, 2007
  113. ;;   National Institute of Advanced Industrial Science and Technology (AIST)
  114. ;;   Registration Number H15PRO112
  115.  
  116. ;; This file is part of the m17n database; a sub-part of the m17n
  117. ;; library.
  118.  
  119. ;; The m17n library is free software; you can redistribute it and/or
  120. ;; modify it under the terms of the GNU Lesser General Public License
  121. ;; as published by the Free Software Foundation; either version 2.1 of
  122. ;; the License, or (at your option) any later version.
  123.  
  124. ;; The m17n library is distributed in the hope that it will be useful,
  125. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  126. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  127. ;; Lesser General Public License for more details.
  128.  
  129. ;; You should have received a copy of the GNU Lesser General Public
  130. ;; License along with the m17n library; if not, write to the Free
  131. ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  132. ;; Boston, MA 02110-1301, USA.
  133.  
  134. ;; Local Variables:
  135. ;; mode: emacs-lisp
  136. ;; End:
  137.